#include "./md5utils.h"

// 计算单个字符串的MD5
QString MD5Util::calculateMD5(const QString &input) {
    // 1. 将QString转换为UTF-8字节数组（避免中文等字符编码问题）
    QByteArray inputBytes = input.toUtf8();

    // 2. 计算MD5哈希
    QByteArray md5Bytes = QCryptographicHash::hash(inputBytes, QCryptographicHash::Md5);

    // 3. 转换为32位十六进制字符串（全小写，如需大写可加.toUpper()）
    return md5Bytes.toHex();
}

// 计算多个字符串拼接后的MD5（可选扩展）
QString MD5Util::calculateMD5(const QStringList &inputs) {
    // 1. 拼接所有字符串（用特殊分隔符避免歧义，比如"|"）
    QString combined = inputs.join("|");

    // 2. 调用单个字符串的MD5计算方法
    return calculateMD5(combined);
}
